package com.ruoyi.spspublic.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.spspublic.domain.BatchSignDto;
import com.ruoyi.spspublic.domain.TMisSign;
import com.ruoyi.spspublic.domain.TMisTask;

import java.util.List;

/**
 * 签字信息Service接口
 *
 * @author wangwei
 * @date 2023-06-23
 */
public interface ITMisSignService {
  /**
   * 查询签字信息
   *
   * @param ctId 签字信息ID
   * @return 签字信息
   */
  public TMisSign selectTMisSignById(String ctId);

  /**
   * 查询签字信息列表
   *
   * @param tMisSign 签字信息
   * @return 签字信息集合
   */
  public List<TMisSign> selectTMisSignList(TMisSign tMisSign);

  /**
   * 新增签字信息
   *
   * @param tMisSign 签字信息
   * @return 结果
   */
  public int insertTMisSign(TMisSign tMisSign);

  /**
   * 修改签字信息
   *
   * @param tMisSign 签字信息
   * @return 结果
   */
  public int updateTMisSign(TMisSign tMisSign);

  /**
   * 批量删除签字信息
   *
   * @param ctIds 需要删除的签字信息ID
   * @return 结果
   */
  public int deleteTMisSignByIds(String[] ctIds);

  /**
   * 删除签字信息信息
   *
   * @param ctId 签字信息ID
   * @return 结果
   */
  public int deleteTMisSignById(String ctId);

  /**
   * 已有记录量
   *
   * @param functionNo
   * @param businessNo
   * @return
   */
  int selectExistSigns(String functionNo, String businessNo);

  /**
   * 将历史数据全部变为done
   *
   * @param querySign
   */
  void updateExpiredSign(TMisSign querySign);

  /**
   * 根据任务生成历史记录
   *
   * @param task
   * @return
   */
  TMisSign createSignByTask(TMisTask task);

  AjaxResult batchSign(BatchSignDto batchSignDto);
}
